import { removeComma } from '@/filters';
import { rightPadZero } from '@/filters';

/**
 * 将金额格式化成带逗号金额,如x,xxx,xxx.xx
 * @param {*} str 金额
 * @param {*} type
 */
export function addComma(str, type) {
    if (!str) return str;
    type = type || '';
    str = removeComma(str);
    var prefix = str.charAt(0);
    if (prefix === '-' || prefix === '+') {
        return prefix + addComma(str.substr(1));
    }
    let subStr = '';
    const index = str.indexOf('.');
    if (index !== -1) {
        subStr = str.substring(index);
        str = str.substring(0, index);
        subStr = rightPadZero(subStr, 3);
    } else {
        subStr = '.00';
    }
    if (str.length > 3) {
        const mod = str.length % 3;
        let output = mod > 0 ? str.substring(0, mod) : '';
        for (let i = 0; i < Math.floor(str.length / 3); i++) {
            if (mod === 0 && i === 0) {
                output += str.substring(mod + 3 * i, mod + 3 * i + 3);
            } else {
                output += ',' + str.substring(mod + 3 * i, mod + 3 * i + 3);
            }
        }
        return type + output + subStr;
    } else {
        return type + str + subStr;
    }
}
